const path = require('path')
const fileUtils = require('../utils/file_utils')
const WebSocket = require('ws')
    // 创建websocket 服务端的对象 绑定的端口号 9998
const wss = new WebSocket.Server({
        port: 9998
    })
    // 服务端开启了监听
module.exports.listen = () => {
    // 对客户端的连接事件进行监听
    // client 代表的是客户端的连接 socket 对象
    wss.on('connection', client => {
        console.log('有客户端连接成功。。 ')
            // 对客户端的连接对象进行message事件的监听
            // msg ：由客户端发给服务器端的数据
        client.on('message', async msg => {
            console.log('客户端的数据发送过来了')
            let payload = JSON.parse(msg)
            if (payload.action === 'getData') {
                // 返回每个模块的数据
                let filePath = '../data/' + payload.chartName + '.json'
                    // ../data/seller.json 
                filePath = path.join(__dirname, filePath)
                const ret = await fileUtils.getFileJsonData(filePath)
                payload.data = ret
                    // 增加data字段 data所对应的值 就是某个json文件的内容
                client.send(JSON.stringify(payload))
            } else {
                // 主题切换, 全屏切换, 进行每个客户端的同步, 收到什么数据就发送什么数据 
                // wss.clients 客户端的所有连接
                wss.clients.forEach(client => {
                    console.log("*****************************************")
                    client.send(msg)
                })
            }
        })
    })
}